1. Field of the Invention
This invention relates in general to the field of computer systems, and in particular, to an apparatus and method for performing multi-dimensional graphic transformations in an SIMD environment.
2. Description of Related Art
Due to high demands in multimedia applications, multi-dimensional graphic transformations are becoming popular, especially three-dimensional (3-D) graphic and image processing. Real-time applications such as animation, scientific visualization, image modeling, video game, typically require extremely fast computations. To meet such a high demand for computations, several parallel architectures have been developed.
Among these parallel architectures, the single instructions multiple data (SIMD) model has become popular recently. A typical SIMD model processes multiple data elements simultaneously. However, the coding of an SIMD machine to solve a 3-D transformations in graphics still presents a number of problems.
First, due to the limited number of registers in an SIMD processor, the manipulation of data usually involve memory-referencing instructions, which require many clock cycles for memory accesses. Second, pipelined functional units in SIMD architecture can have long latencies. Third, most current implementations of 3-D transformations only process one vertex at each iteration.
Therefore, there is a need in the technology for providing an apparatus and method to efficiently perform 3-D transformations in a pipelined SIMD environment.
An apparatus and method for performing 3-D transformations using computer-implemented steps is described. The present invention discloses a method and apparatus for optimizing three-dimensional (3-D) transformation on N vertices of a data object based on a transformation matrix of size Kxc3x97K. The method comprises: storing coordinates of the N vertices in K data items, each of the K data items having N elements; and scheduling a sequence of M operations with a set of P storage elements, the sequence of M operations performing a matrix multiplication of the transformation matrix with the K data items to produce transformed K data items, the set of P storage elements storing a plurality of intermediate results produced by the sequence of M operations.